package com.yuanqi.controller;

import com.yuanqi.common.Result;
import com.yuanqi.service.FileService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

@RestController
@RequestMapping("/api/file")
public class FileController {

    @Autowired
    private FileService fileService;

    /**
     * 上传图片
     */
    @PostMapping("/upload")
    public Result<String> uploadImage(@RequestParam("file") MultipartFile file) {
        try {
            // 文件验证
            if (file == null || file.isEmpty()) {
                return Result.error("请选择要上传的文件");
            }

            // 文件大小验证（10MB）
            if (file.getSize() > 10 * 1024 * 1024) {
                return Result.error("文件大小不能超过10MB");
            }

            // 文件类型验证
            String contentType = file.getContentType();
            if (contentType == null || !contentType.startsWith("image/")) {
                return Result.error("只支持图片文件");
            }

            // 上传文件
            String imageUrl = fileService.uploadImage(file);
            return Result.success(imageUrl);
        } catch (Exception e) {
            e.printStackTrace();
            return Result.error("图片上传失败: " + e.getMessage());
        }
    }

    /**
     * 删除图片
     */
    @DeleteMapping("/delete")
    public Result<Boolean> deleteImage(@RequestParam("imageUrl") String imageUrl) {
        try {
            boolean success = fileService.deleteImage(imageUrl);
            return Result.success(success);
        } catch (Exception e) {
            return Result.error("图片删除失败: " + e.getMessage());
        }
    }
}
